* {
      box-sizing: border-box;
      font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    }
    body {
      background: linear-gradient(145deg, #f6f9fc 0%, #e9f0f5 100%);
      min-height: 100vh;
      margin: 0;
      display: flex;
      justify-content: center;
      align-items: center;
      padding: 1rem;
    }
    .card {
      max-width: 700px;
      width: 100%;
      background: rgba(255, 255, 255, 0.85);
      backdrop-filter: blur(6px);
      -webkit-backdrop-filter: blur(6px);
      border-radius: 2rem;
      box-shadow: 0 20px 40px -10px rgba(0, 30, 50, 0.3),
                  inset 0 1px 2px rgba(255,255,255,0.6);
      padding: 2.2rem 2rem;
      border: 1px solid rgba(255,255,255,0.5);
    }
    h1 {
      font-size: 2.2rem;
      font-weight: 600;
      margin: 0 0 0.2rem 0;
      background: linear-gradient(130deg, #003057, #1b4f7a);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      letter-spacing: -0.5px;
    }
    .sub {
      color: #2c5779;
      font-weight: 400;
      margin-top: 0.2rem;
      margin-bottom: 1.8rem;
      border-left: 4px solid #2a7faa;
      padding-left: 1rem;
      font-size: 1rem;
    }
    .upload-area {
      background: white;
      border-radius: 1.8rem;
      padding: 1.5rem 1.5rem 1.2rem 1.5rem;
      box-shadow: inset 0 2px 5px rgba(0,0,0,0.02), 0 6px 12px rgba(22,42,70,0.1);
      border: 1px solid rgba(255,255,255,0.7);
    }
    .file-label {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 0.5rem;
      background: #eef4fa;
      border-radius: 3rem;
      padding: 0.8rem 1.8rem;
      cursor: pointer;
      font-weight: 500;
      color: #103a5e;
      transition: 0.15s;
      border: 2px dashed #9bb8d4;
      text-align: center;
    }
    .file-label:hover {
      background: #e1eaf3;
      border-color: #2a7faa;
    }
    #fileInput {
      position: absolute;
      opacity: 0;
      width: 0.1px;
      height: 0.1px;
    }
    .file-info {
      display: flex;
      justify-content: space-between;
      margin-top: 0.8rem;
      font-size: 0.9rem;
      color: #1c4a6e;
      padding: 0 0.5rem;
    }
    .max-badge {
      background: #0b2a41;
      color: white;
      padding: 0.2rem 0.9rem;
      border-radius: 30px;
      font-weight: 500;
      font-size: 0.8rem;
    }
    .case-panel {
      margin: 2rem 0 1.8rem 0;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 1rem;
    }
    .case-panel label {
      font-weight: 600;
      color: #0e3d5e;
      font-size: 1.1rem;
    }
    select {
      flex: 2 1 240px;
      padding: 0.8rem 1.5rem;
      border-radius: 3rem;
      border: 1px solid #bdd3e8;
      background: white;
      font-size: 1rem;
      font-weight: 500;
      color: #04273e;
      cursor: pointer;
      box-shadow: 0 2px 5px rgba(0,0,0,0.02);
      transition: 0.15s;
      appearance: none;
      background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="%23103a5e" stroke-width="2"><polyline points="6 9 12 15 18 9"/></svg>');
      background-repeat: no-repeat;
      background-position: right 1.2rem center;
    }
    select:hover {
      border-color: #2a7faa;
      background-color: #f9fcff;
    }
    .action-row {
      display: flex;
      flex-wrap: wrap;
      gap: 1rem;
      align-items: center;
      margin: 1.5rem 0 1rem;
    }
    button {
      background: white;
      border: none;
      padding: 0.9rem 2rem;
      border-radius: 3rem;
      font-weight: 600;
      font-size: 1.1rem;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 0.5rem;
      box-shadow: 0 6px 14px rgba(27, 60, 94, 0.15);
      cursor: pointer;
      transition: 0.1s ease;
      border: 1px solid rgba(255,255,255,0.8);
      flex: 1 0 auto;
    }
    #convertBtn {
      background: #0f3b5c;
      color: white;
      border: 1px solid #346a92;
    }
    #convertBtn:hover:not(:disabled) {
      background: #1b4f74;
      transform: scale(1.02);
      box-shadow: 0 10px 20px rgba(20, 68, 110, 0.3);
    }
    #downloadBtn {
      background: #eaf0f8;
      color: #0f3b5c;
    }
    #downloadBtn:hover:not(:disabled) {
      background: #d6e4f0;
      transform: scale(1.02);
    }
    button:disabled {
      opacity: 0.45;
      cursor: not-allowed;
      box-shadow: none;
      transform: none;
    }
    .progress-wrap {
      margin: 1.2rem 0 0.8rem;
      background: rgba(0,0,0,0.06);
      border-radius: 40px;
      height: 30px;
      position: relative;
      box-shadow: inset 0 1px 4px rgba(0,0,0,0.1);
    }
    #progressBar {
      background: linear-gradient(90deg, #277fae, #3f9ed6);
      height: 30px;
      border-radius: 40px;
      width: 0%;
      display: flex;
      align-items: center;
      justify-content: flex-end;
      padding-right: 15px;
      font-size: 0.8rem;
      font-weight: bold;
      color: white;
      text-shadow: 0 1px 2px rgba(0,0,0,0.2);
      transition: width 0.2s ease;
      box-shadow: 0 2px 8px #3f9ed6aa;
      white-space: nowrap;
    }
    #status {
      min-height: 2.5rem;
      font-size: 0.95rem;
      color: #1b4f70;
      background: rgba(255,255,255,0.5);
      border-radius: 3rem;
      padding: 0.6rem 1.2rem;
      margin-top: 1.2rem;
      border-left: 4px solid #2a7faa;
      word-break: break-word;
    }
    .secure-badge {
      display: inline-block;
      background: #0f3b5c10;
      border-radius: 30px;
      padding: 0.2rem 1rem;
      font-size: 0.8rem;
      color: #14471f;
      border: 1px solid #85b9d9;
      backdrop-filter: blur(2px);
    }
    footer {
      margin-top: 1.8rem;
      text-align: center;
      font-size: 0.8rem;
      color: #2c4d6e;
    }